Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / MeshChatX.git / files / meshchatx / src / frontend / components / rnode / RNodeFirmwareSelector.vue

Displaying Raw • Download


meshchatx/src/frontend/components/rnode/RNodeFirmwareSelector.vue 9c739fa940d1bcaefcd5de9a3b461762a7200103 (9c739fa9) Text, 5.44 KB

T8b949e<!-- SPDX-License-Identifier: 0BSD -->

Tb4b4b4<Tff7b72templateTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-4"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72div
Te6edf3classTff7b72=Ta5d6ff"p-2 bg-purple-100 dark:bg-purple-900/30 rounded-lg text-purple-600 dark:text-purple-400 shrink-0"
Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3icon-nameTff7b72=Ta5d6ff"file-download" Te6edf3classTff7b72=Ta5d6ff"size-5" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72h2 Te6edf3classTff7b72=Ta5d6ff"font-bold text-gray-900 dark:text-zinc-100"Tb4b4b4>
Tff7b72{{ Te6edf3stepNumber Tff7b72}}. Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.rnode_flasher.select_firmware"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72h2Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3recommendedFirmwareFilenameTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"p-4 rounded-xl border border-blue-100 dark:border-blue-900/30 bg-blue-50/50 dark:bg-blue-900/10 space-y-3"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between gap-2"Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-xs font-bold text-blue-700 dark:text-blue-400 uppercase"Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.rnode_flasher.download_recommended"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72span
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3latestReleaseTff7b72?Tb4b4b4.Te6edf3tag_nameTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"text-[10px] font-mono text-blue-600 dark:text-blue-300 bg-blue-100/60 dark:bg-blue-900/30 px-2 py-0.5 rounded-full"
Tb4b4b4>
Tff7b72{{ Te6edf3latestReleaseTb4b4b4.Te6edf3tag_name Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"text-sm text-gray-600 dark:text-zinc-400 break-all font-mono"Tb4b4b4>
Tff7b72{{ Te6edf3recommendedFirmwareFilename Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72button
Tb4b4b4:Te6edf3disabledTff7b72=Ta5d6ff"Te6edf3isDownloadingFirmware Tff7b72|| Tff7b72!Te6edf3recommendedFirmwareFilenameTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"w-full inline-flex items-center justify-center gap-2 rounded-xl bg-blue-600 hover:bg-blue-700 px-4 py-2.5 text-sm font-bold text-white transition-colors disabled:opacity-50"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3$emitTb4b4b4(Ta5d6ff'download-recommended'Tb4b4b4)Ta5d6ff"
Tb4b4b4>
Tb4b4b4<Tff7b72v-progress-circular Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3isDownloadingFirmwareTa5d6ff" Te6edf3indeterminate Te6edf3sizeTff7b72=Ta5d6ff"16" Te6edf3widthTff7b72=Ta5d6ff"2" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon Te6edf3v-else Te6edf3icon-nameTff7b72=Ta5d6ff"cloud-download" Te6edf3classTff7b72=Ta5d6ff"size-4" Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72spanTb4b4b4>
Tff7b72{{
Te6edf3isDownloadingFirmware
Tff7b72? Te6edf3$tTb4b4b4(Ta5d6ff"tools.rnode_flasher.downloading"Tb4b4b4)
Tff7b72: Te6edf3$tTb4b4b4(Ta5d6ff"tools.rnode_flasher.download_recommended"Tb4b4b4)
Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"space-y-1"Tb4b4b4>
Tb4b4b4<Tff7b72label Te6edf3classTff7b72=Ta5d6ff"rnf-label"Tb4b4b4>Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"tools.rnode_flasher.select_firmware_file"Tb4b4b4) Tff7b72}}Tb4b4b4<Tb4b4b4/Tff7b72labelTb4b4b4>
Tb4b4b4<Tff7b72input
Te6edf3refTff7b72=Ta5d6ff"file"
Te6edf3typeTff7b72=Ta5d6ff"file"
Te6edf3acceptTff7b72=Ta5d6ff".zip"
Te6edf3data-testidTff7b72=Ta5d6ff"rnode-firmware-file"
Te6edf3classTff7b72=Ta5d6ff"block w-full text-sm text-gray-900 dark:text-zinc-100 border border-gray-200 dark:border-zinc-800 rounded-xl cursor-pointer bg-white dark:bg-zinc-900 focus:outline-hidden file:mr-4 file:py-2.5 file:px-4 file:border-0 file:text-sm file:font-bold file:bg-zinc-200 dark:file:bg-zinc-700 file:text-zinc-700 dark:file:text-zinc-200 hover:file:bg-zinc-300 dark:hover:file:bg-zinc-600"
Tb4b4b4@Te6edf3changeTff7b72=Ta5d6ff"Te6edf3onFileChangeTa5d6ff"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>

Tb4b4b4<Tff7b72div
Te6edf3v-ifTff7b72=Ta5d6ff"Te6edf3firmwareFileTa5d6ff"
Te6edf3classTff7b72=Ta5d6ff"flex items-center justify-between gap-2 px-3 py-2 rounded-xl border border-emerald-200 dark:border-emerald-900/40 bg-emerald-50 dark:bg-emerald-900/10"
Tb4b4b4>
Tb4b4b4<Tff7b72div Te6edf3classTff7b72=Ta5d6ff"flex items-center gap-2 min-w-0"Tb4b4b4>
Tb4b4b4<Tff7b72MaterialDesignIcon
Te6edf3icon-nameTff7b72=Ta5d6ff"check-circle"
Te6edf3classTff7b72=Ta5d6ff"size-4 text-emerald-600 dark:text-emerald-400 shrink-0"
Tb4b4b4/Tb4b4b4>
Tb4b4b4<Tff7b72span Te6edf3classTff7b72=Ta5d6ff"text-xs font-mono truncate text-emerald-800 dark:text-emerald-200"Tb4b4b4>
Tff7b72{{ Te6edf3firmwareFileTb4b4b4.Te6edf3name Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72spanTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tff7b72button
Te6edf3typeTff7b72=Ta5d6ff"button"
Te6edf3classTff7b72=Ta5d6ff"text-[10px] font-bold uppercase text-emerald-700 dark:text-emerald-300 hover:underline"
Tb4b4b4@Te6edf3clickTff7b72=Ta5d6ff"Te6edf3clearFileTa5d6ff"
Tb4b4b4>
Tff7b72{{ Te6edf3$tTb4b4b4(Ta5d6ff"common.clear"Tb4b4b4) Tff7b72}}
Tb4b4b4<Tb4b4b4/Tff7b72buttonTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72divTb4b4b4>
Tb4b4b4<Tb4b4b4/Tff7b72templateTb4b4b4>

Tb4b4b4<Tff7b72scriptTb4b4b4>
Tff7b72import Te6edf3MaterialDesignIcon Tff7b72from Ta5d6ff"../MaterialDesignIcon.vue"Tb4b4b4;

Tff7b72export Tff7b72default Tb4b4b4{
Te6edf3nameTff7b72: Ta5d6ff"RNodeFirmwareSelector"Tb4b4b4,
Te6edf3componentsTff7b72: Tb4b4b4{ Te6edf3MaterialDesignIcon Tb4b4b4}Tb4b4b4,
Te6edf3propsTff7b72: Tb4b4b4{
Te6edf3stepNumberTff7b72: Tb4b4b4{ Te6edf3typeTff7b72: Tffa657NumberTb4b4b4, Tff7b72defaultTff7b72: T79c0ff2 Tb4b4b4}Tb4b4b4,
Te6edf3recommendedFirmwareFilenameTff7b72: Tb4b4b4{ Te6edf3typeTff7b72: Tffa657StringTb4b4b4, Tff7b72defaultTff7b72: Tff7b72null Tb4b4b4}Tb4b4b4,
Te6edf3latestReleaseTff7b72: Tb4b4b4{ Te6edf3typeTff7b72: Tffa657ObjectTb4b4b4, Tff7b72defaultTff7b72: Tff7b72null Tb4b4b4}Tb4b4b4,
Te6edf3isDownloadingFirmwareTff7b72: Tb4b4b4{ Te6edf3typeTff7b72: Tffa657BooleanTb4b4b4, Tff7b72defaultTff7b72: Tff7b72false Tb4b4b4}Tb4b4b4,
Te6edf3firmwareFileTff7b72: Tb4b4b4{ Te6edf3typeTff7b72: Tffa657ObjectTb4b4b4, Tff7b72defaultTff7b72: Tff7b72null Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Te6edf3emitsTff7b72: Tb4b4b4[Ta5d6ff"download-recommended"Tb4b4b4, Ta5d6ff"update:firmwareFile"Tb4b4b4]Tb4b4b4,
Te6edf3methodsTff7b72: Tb4b4b4{
Te6edf3onFileChangeTb4b4b4(Te6edf3eventTb4b4b4) Tb4b4b4{
Tff7b72const Te6edf3file Tff7b72= Te6edf3eventTb4b4b4.Te6edf3targetTb4b4b4.Te6edf3filesTff7b72?Tb4b4b4.Tb4b4b4[T79c0ff0Tb4b4b4] Tff7b72|| Tff7b72nullTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"update:firmwareFile"Tb4b4b4, Te6edf3fileTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3clearFileTb4b4b4(Tb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72thisTb4b4b4.Te6edf3$refsTb4b4b4.Te6edf3fileTb4b4b4) Tb4b4b4{
Tff7b72thisTb4b4b4.Te6edf3$refsTb4b4b4.Te6edf3fileTb4b4b4.Te6edf3value Tff7b72= Ta5d6ff""Tb4b4b4;
Tb4b4b4}
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"update:firmwareFile"Tb4b4b4, Tff7b72nullTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Te6edf3setFileTb4b4b4(Te6edf3fileTb4b4b4) Tb4b4b4{
Tff7b72if Tb4b4b4(Tff7b72!Tff7b72thisTb4b4b4.Te6edf3$refsTb4b4b4.Te6edf3fileTb4b4b4) Tff7b72returnTb4b4b4;
Tff7b72const Te6edf3dataTransfer Tff7b72= Tff7b72new Te6edf3DataTransferTb4b4b4(Tb4b4b4)Tb4b4b4;
Te6edf3dataTransferTb4b4b4.Te6edf3itemsTb4b4b4.Te6edf3addTb4b4b4(Te6edf3fileTb4b4b4)Tb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3$refsTb4b4b4.Te6edf3fileTb4b4b4.Te6edf3files Tff7b72= Te6edf3dataTransferTb4b4b4.Te6edf3filesTb4b4b4;
Tff7b72thisTb4b4b4.Te6edf3$emitTb4b4b4(Ta5d6ff"update:firmwareFile"Tb4b4b4, Te6edf3fileTb4b4b4)Tb4b4b4;
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4,
Tb4b4b4}Tb4b4b4;
Tb4b4b4<Tb4b4b4/Tff7b72scriptTb4b4b4>

Tb4b4b4<Tff7b72style Te6edf3scopedTb4b4b4>
Tb4b4b4@Tff7b72reference Ta5d6ff"../../style.css"Tb4b4b4;
Tb4b4b4.T56d364rnf-label Tb4b4b4{
@apply text-xs font-semibold text-gray-500 Te6edf3darkTb4b4b4:Tff7b72textTff7b72-Te6edf3zinc-500 Tff7b72uppercase Te6edf3tracking-widerTb4b4b4;
Tb4b4b4}
Tb4b4b4<Tb4b4b4/Tff7b72styleTb4b4b4>


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────